#include <stdio.h>/*该文件包含pringtf()等函数*/
#include <stdlib.h>/*该文件包含exit()等函数*/
#include <malloc.h>/*该文件包含malloc()等函数*/

#define QUEUE_MAX_SIZE 100 // 栈最多支持存放100个数据元素

typedef struct Queue {
  int elements[QUEUE_MAX_SIZE];
  int size;
} Queue;

// 初始化队列。初始化成功返回0；初始化失败返回1。
int init_queue(Queue ** q);

// 在队列q的尾巴上增加一个元素，其值为value。增加成功，返回0；增加失败，返回1
int enqueue (Queue * q, int value); 

// 从队列q上摘取（去掉）一个元素，将其值放入value中。摘取成功，返回0；摘取失败，返回1。
int dequeue(Queue * q, int *value); 

// 获取队列q的第一个元素，但是并不去掉该元素，并将该值放入value中。获取成功返回0；获取失败，返回1。 
int first(Queue * q, int * value); 

// 判断队列q是否为空。为空，返回0；不为空，返回1。 
int is_empty(Queue * q); 

// 返回队列q中的元素个数。 
int size(Queue * q); 

